FULL OUTER JOIN Keyword क्या हैं?
जब बाएं (तालिका 1) या दाएं (तालिका 2) तालिका रिकॉर्ड का मिलान किया जाता है तो पूर्ण बाहरी जॉइन कीवर्ड सभी रिकॉर्ड लौटाता है।
सहायता नोट:
पूर्ण बाहरी जोड़ और पूर्ण जोड़ समान हैं।
पूर्ण बाहरी जुड़ाव सिंटैक्स
SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name
WHERE condition;
नोट:
एक पूर्ण बाहरी जुड़ाव बहुत बड़े परिणाम-सेट लौटा सकता है!
प्रदर्शन डेटाबेस
इस अभ्यास में हम प्रसिद्ध नॉर्थविंड मॉडल डेटाबेस का उपयोग करेंगे।
नीचे "ग्राहक" तालिका से एक चयन दिया गया है:
ग्राहक तालिका
+------------+--------------------------------+----------------+-------------------+----------+------------+---------+
| CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
+------------+--------------------------------+----------------+-------------------+----------+------------+---------+
| 1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
| 2 | Ana Trujillo Emparedados... | Ana Trujillo | Avda. Constitución| México | 05021 | Mexico |
| 3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México | 05023 | Mexico |
+------------+--------------------------------+----------------+-------------------+----------+------------+---------+
और "आदेश" तालिका से एक चयन:
आदेश तालिका
+---------+------------+-----------+------------+------------+
| OrderID | CustomerID | EmployeeID | OrderDate | ShipperID |
+---------+------------+-----------+------------+------------+
| 10308 | 2 | 7 | 1996-09-18 | 3 |
| 10309 | 37 | 3 | 1996-09-19 | 1 |
| 10310 | 77 | 8 | 1996-09-20 | 2 |
+---------+------------+-----------+------------+------------+
SQL FULL OUTER JOIN उदाहरण
निम्नलिखित SQL कथन सभी ग्राहकों और सभी ऑर्डरों का चयन करता है:
उदाहरण
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
FULL OUTER JOIN Orders ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;
परिणाम सेट से चयन इस प्रकार दिखाई दे सकता है:
निष्कर्ष
+--------------------------------+---------+
| CustomerName | OrderID |
+--------------------------------+---------+
| NULL | 10309 |
| NULL | 10310 |
| Alfreds Futterkiste | NULL |
| Ana Trujillo Emparedados... | 10308 |
| Antonio Moreno Taquería | NULL |
+--------------------------------+---------+
नोट:
फुल आउटर जॉइन कीवर्ड दोनों तालिकाओं से सभी मिलान रिकॉर्ड लौटाता है, चाहे वे दूसरी तालिका में मेल खाते हों या नहीं। इसलिए, यदि "ग्राहक" में ऐसी पंक्तियाँ हैं जो "ऑर्डर" से मेल नहीं खाती हैं, या यदि "ऑर्डर" में ऐसी पंक्तियाँ हैं जो "ग्राहक" से मेल नहीं खाती हैं, तो उन पंक्तियों को भी सूचीबद्ध किया जाएगा।
पूर्ण बाहरी जुड़ाव का दृश्य प्रतिनिधित्व
ग्राहक तालिका
आदेश तालिका
पूर्ण बाहरी जुड़ाव परिणाम
टिप्पणी:पूर्ण बाहरी जुड़ाव दोनों तालिकाओं से सभी रिकॉर्ड दिखाता है - मिलान रिकॉर्ड, बिना ऑर्डर वाले ग्राहक, और बिना ग्राहक वाले ऑर्डर सभी शामिल होते हैं।
JOIN प्रकारों की तुलना
INNER JOIN
केवल वही रिकॉर्ड जो दोनों तालिकाओं में मेल खाते हों
LEFT JOIN
बाईं तालिका से सभी + मिलान रिकॉर्ड
RIGHT JOIN
सही तालिका से सभी + मिलान रिकॉर्ड
FULL OUTER JOIN
दोनों तालिकाओं से सभी रिकॉर्ड
कब पूर्ण बाहरी जोड़ का उपयोग किया जाना चाहिए
संपूर्ण डेटा विश्लेषण
दोनों तालिकाओं से संपूर्ण डेटा का विश्लेषण करें
बेमेल रिकॉर्ड ढूंढना
उन रिकॉर्ड्स की पहचान करना जो दोनों तालिकाओं में मेल नहीं खाते हैं
डेटा सिंक्रनाइज़ेशन
दो स्रोतों से डेटा को एकीकृत और सिंक्रनाइज़ करें
महत्वपूर्ण नोट:
बड़ी टेबलों पर फुल आउटर जॉइन का उपयोग करते समय सावधान रहें क्योंकि यह बहुत बड़े परिणाम दे सकता है। WHERE क्लॉज का उपयोग करके परिणामों को फ़िल्टर करना बेहतर है।